﻿#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <windows.h>
#include <wchar.h>
#include <graphics.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
int grahight = 415;//实际画布高
int grawidth = 340;//实际画布宽
#define allhight 100//总数组大小
#define allwidth 100//总数组大小
//中级17*17：415*340，初级10*10：275*200，高级20*20：475*400
int hight = 17;//实际游戏区域大小
int width = 17;//实际游戏区域大小
int times = 0;//获取总时间
int time1 = 0, time2 = 0, time3 = 0;//记录时间的三位
int first = 1;//判断第一次点击
int bomb = 30;//炸弹数量
int runing = 1;//是否结束游戏
int smiles = 0;//笑脸图的变化
int ture = 1;//判断是否开始游戏
int a = 1;//不让它一直弹出胜利的框
int map[allhight + 2][allwidth + 2] = { 0 };//布局战场都出的两行和两个列用来辅助找出周围炸弹数
clock_t start_t, end_t;//开始实际时间，结束时间算时间差
IMAGE block[13];//1-8和空格和炸弹图片
IMAGE smile[4];//笑脸的各种状态
IMAGE numbomb[10];//时间图片
int numbombs = 0;//炸弹第一位数
int numbombss = 0;//炸弹第二位数
int win = 0;//判断是否赢
int choice = 0;//看用户是否选择
int best_time = 999;// 初始化为一个较大的值

int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
int windowWidth = grawidth;
int windowHeight = grahight;
int x = (screenWidth - windowWidth) / 2;
int y = (screenHeight - windowHeight) / 2;


void printfmap();//打印地图
void updategame();//更新数据并且加密
int findbomb(int a, int b);//找正常方块附近的炸弹数量
void theloadimage();//加载图片
void playgame();//获取用户的点击
void renewgame();//刷新游戏
void whitchtouch2();//选择 难度界面函数
void showbomb();//点击炸弹后显示所有炸弹
void openzero(int m, int n);//遇到空格打开，递归思想
void whitchtouth();//开始界面的选择函数
void printfmaps()
{
	for (int i = 1; i <= hight; i++)
	{
		printf("第%d行：", i);
		for (int j = 1; j <= width; j++)
		{

			int a = (j - 1) * 20;
			int b = (i - 1) * 20 + 72;
			printf("%3d", map[i][j]);

		}
		printf("\n");
	}
}
//输出后台数据看炸弹在哪，外挂！！！！！

void before();

void playBackgroundMusic() {
	PlaySound(_T("D:\\code\\baozha.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
}void stopBackgroundMusic() {
	PlaySound(NULL, NULL, SND_PURGE);
}

void playBackgroundMusic1() {
	PlaySound(_T("D:\\code\\beijing.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
}void stopBackgroundMusic1() {
	PlaySound(NULL, NULL, SND_PURGE);
}

void playBackgroundMusic2() 
{
	PlaySound(_T("D:\\code\\shidi.wav"), NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
}
void stopBackgroundMusic2() {
	PlaySound(NULL, NULL, SND_PURGE);
}
int main()
{
	best_time = 999;
	playBackgroundMusic();
	HWND hwnd = initgraph(grawidth, grahight);
	MoveWindow(hwnd, x, y, windowWidth, windowHeight, TRUE);
	setbkcolor(RGB(189, 189, 189));
	cleardevice();
	setfont(12, 0, _T("宋体"));

	// 准备过程
	while (ture)  // 开始界面
	{
		whitchtouth(); // 开始界面的选择函数
	}

	cleardevice();
	while (choice)
	{
		whitchtouch2(); // 选择难度界面函数
	}

	// 重开一个窗口进行游戏
	HWND h = initgraph(grawidth, grahight);
	MoveWindow(h, x, y, windowWidth, windowHeight, TRUE);

	setbkcolor(RGB(189, 189, 189));
	cleardevice();

	// 开始
	numbombss = bomb % 10;
	numbombs = bomb / 10;
	theloadimage();
	updategame();
	printfmaps();

	hight = 17;
	width = 17;
	grahight = 415;
	grawidth = 340;
	bomb = 30;

	while (1)
	{
		printfmap();
		playgame();
		if (win == hight * width - bomb && a) // 判断是否赢
		{
			a = 0; // 避免反复弹出胜利窗口
			smiles = 3; // 笑脸变化
			printfmap();

			// 计算当前游戏时间（单位：秒）
			clock_t end_t = clock();
			int current_time = (end_t - start_t) / CLOCKS_PER_SEC;

			// 更新最佳时间
			if (current_time < best_time)
			{
				best_time = current_time;
			}

			MessageBox(hwnd, L"You Are The Winner!!", L"", MB_OK); // 弹出窗口
		}
		if (smiles == 1)
		{
			first = 1;
			a = 1;
			win = 0;
			system("cls");
			renewgame();
			printfmaps();
		}
		end_t = clock();
		int q = (end_t - start_t) / 1000;
		if (runing == 1 && first == 0 && win != hight * width - bomb)
		{
			time1 = q / 100;
			time2 = q / 10 % 10;
			time3 = q % 10;
		}
		if (first == 1)
		{
			time1 = time2 = time3 = 0;
		}
	}
	closegraph();
	stopBackgroundMusic();
	return 0;
}
void printfmap()
{
	
	
	outtextxy(grawidth / 2 - 25, 0, L"返回");
	putimage(grawidth / 2 - 20, 30, &smile[smiles]);//中间笑脸图片
	putimage(10, 10, &numbomb[numbombs]);//这个和下个都是显示炸弹数量图片
	putimage(40, 10, &numbomb[numbombss]);
	putimage(grawidth - 90, 10, &numbomb[time1]);//下面三个都是时间图片
	putimage(grawidth - 60, 10, &numbomb[time2]);
	putimage(grawidth - 30, 10, &numbomb[time3]);
	for (int i = 1; i <= hight; i++)
	{
		for (int j = 1; j <= width; j++)
		{
			int a = (j - 1) * 20;
			int b = (i - 1) * 20 + 72;
			if (a >= 0 && a < grawidth && b >= 72 && b < grahight)
			{
				if (map[i][j] <= 28 && map[i][j] >= 19)//19-28表示没点开的所以都是方块图片。这就是为什么要加20的原因
					putimage(a, b, &block[0]);//绘制未点开的方块
				else if (map[i][j] <= 8 && map[i][j] >= -1)
				{
					switch (map[i][j])
					{
					case -1:
						putimage(a, b, &block[9]); //地雷
						break;
					case 0:
						putimage(a, b, &block[10]);//空白方块（周围无炸弹
						break;
					case 1:
						putimage(a, b, &block[1]);
						break;
					case 2:
						putimage(a, b, &block[2]);
						break;
					case 3:
						putimage(a, b, &block[3]);
						break;
					case 4:
						putimage(a, b, &block[4]);
						break;
					case 5:
						putimage(a, b, &block[5]);
						break;
					case 6:
						putimage(a, b, &block[6]);
						break;
					case 7:
						putimage(a, b, &block[7]);
						break;
					case 8:
						putimage(a, b, &block[8]);//数字1~8
						break;
					}
				}
				else if (map[i][j] <= 48 && map[i][j] >= 39) //右键加20然后，就在39到48之间，这些都是镖旗图标
					putimage(a, b, &block[11]);
				else if (map[i][j] == -100)//这是点到的炸弹要变红
					putimage(a, b, &block[12]);
			}
		}
	}
}
void updategame()
{
	srand((unsigned int)time(NULL));
	int n = 0;
	while (n < bomb) //随机生成地雷
	{
		int x = rand() % hight + 1;
		int y = rand() % width + 1;
		if (map[x][y] == 0 && x != 0 && y != 0)
		{
			map[x][y] = -1; //地雷值为-1
			n++;
		}
	}
	//布置地雷
	for (int i = 1; i <= hight; i++)
	{
		for (int j = 1; j <= width; j++)
		{
			if (map[i][j] == 0)
			{
				int sign = 0;
				sign = findbomb(i, j); //找到附近的炸弹数量
				map[i][j] = sign;//显示周围炸弹数量
			}
		}
	}
	//查找不是雷的区域周围的雷数
	for (int i = 1; i <= hight; i++)
	{
		for (int j = 1; j <= width; j++)
		{
			map[i][j] += 20; //方块图片为19~~28（原本为-1~8
		}
	}
	//加密为方块图片
}
int findbomb(int a, int b) //找到周围的炸弹数量
{
	int all = 0;
	for (int i = a - 1; i <= a + 1; i++)
	{
		for (int j = b - 1; j <= b + 1; j++)
		{
			if (map[i][j] == -1)
			{
				all++;
			}
		}
	}
	return all;
}

void playgame()
{
	//获取用户的鼠标输入
	if (MouseHit())//判读有误键盘输入，没有就跳过，免得影响时间的进行，如果没有这个if它会等一下，导致时间是跳动的，读者可以自己删去if来看一下会发生什么
	{

		MOUSEMSG msg = GetMouseMsg();
		int x = msg.x;
		int y = msg.y;
		switch (msg.uMsg)
		{
		case  WM_LBUTTONDOWN:
			if (x >= 0 && x <= grawidth && y >= 72 && y <= grahight && runing && smiles != 3)
			{
				if (first == 1)//判读第一次点击开始计时
				{
					start_t = clock();
					first = 0;
				}
				x = x / 20 + 1;
				y = (y - 72) / 20 + 1;
				if (map[y][x] <= 28 && map[y][x] >= 19)
				{
					if (map[y][x] == 20)//如果点开的是0需要展开周围8个，8个中有0就还要展开，同时保证自己展开的不是炸弹
					{
						openzero(y, x);
					}
					else
					{
						map[y][x] -= 20;//正常的就直接展开
						win++;
						if (map[y][x] == -1)
							win--;//防止最后一个是雷变成又是赢，又有炸弹
					}
				}
				if (map[y][x] == -1)
				{
					stopBackgroundMusic();
					playBackgroundMusic1();
					map[y][x] = -100;//点到的炸弹要标红，所以单独设置一个数字，来展示这张图片
					showbomb();//点到炸弹要把炸弹全部展开
					smiles = 2;//输了的话就变成哭脸
					printfmap();
					runing = 0;//输了就不能点击游戏区

				}
			}
			else if (x >= grawidth / 2 - 20 && x <= grawidth / 2 + 10 && y >= 20 && y <= 55)
			{
				smiles = 1;
				runing = 1;
			}
			else if (x >= grawidth / 2 - 25 && x <= grawidth / 2 + 10 && y >= 0 && y <= 19)
			{
				stopBackgroundMusic1();
				playBackgroundMusic();
				before();//重新开始
				printf("1\n");
			}
			break;
		case WM_LBUTTONUP:
			if (runing == 1 && win != hight * width - bomb)
				smiles = 0;//除了输赢和点击否则都是笑脸
			break;
		case WM_RBUTTONDOWN:
			if (x >= 0 && x <= grawidth && y >= 72 && y <= grahight && runing == 1)//右键镖旗
			{
				if (first == 1)
				{
					start_t = clock();
					first = 0;
				}
				x = x / 20 + 1;
				y = (y - 72) / 20 + 1;
				if (map[y][x] <= 28 && map[y][x] >= 19)
				{
					map[y][x] += 20;

				}
				else if (map[y][x] <= 48 && map[y][x] >= 39)
				{
					map[y][x] -= 20;
				}
			}
			break;


		}

	}

}
void openzero(int m, int n) //递归展开周围
{
	map[m][n] -= 20;//打开本身
	win++;
	for (int i = m - 1; i <= m + 1; i++)
	{
		for (int j = n - 1; j <= n + 1; j++)
		{
			if (i >= 1 && i <= width && j >= 1 && j <= hight)//保证在游戏区内
			{
				if (map[i][j] <= 28 && map[i][j] >= 19)//如果没有翻开
				{
					if (map[i][j] != 20)//保证不是0
					{
						map[i][j] -= 20;
						win++;
					}
					else
						openzero(i, j);//递归

				}
			}
		}
	}
}
void renewgame()
{
	for (int i = 1; i <= hight; i++)
	{
		for (int j = 1; j <= width; j++)
		{
			map[i][j] = 0;
		}
	}
	updategame();
}
void whitchtouth()
{
	MOUSEMSG msg;
	bool isOverStartButton = false;
	bool isOverDifficultyButton = false;

	// 初始化时绘制静态内容（小组4的文字和最佳成绩的文字）
	cleardevice();
	settextcolor(BLACK);
	outtextxy(30, 250, L"游戏说明:");
	outtextxy(105, 250, L"点击笑脸可以重新开始，开始");
	outtextxy(105, 275, L"游戏默认中级难度，可以选择");
	outtextxy(105, 300, L"难度直接开始游戏，点击返回");
	outtextxy(105, 325, L"回到界面");

	// 显示最佳成绩
	wchar_t best_time_str[20];
	swprintf(best_time_str, 20, L"最佳时间: %d秒", best_time);
	outtextxy(grawidth - 150, 10, best_time_str);

	outtextxy(130, 360, L"小组4：王子琪，薛沛东，来瑞冉");

	// 初始化时绘制按钮
	setfillcolor(WHITE); // 按钮背景颜色
	fillrectangle(80, 50, 250, 120); // 开始游戏按钮
	fillrectangle(80, 150, 250, 220); // 难度设置按钮

	settextcolor(BLACK); // 按钮文字颜色
	outtextxy(130, 80, L"开始游戏");
	outtextxy(130, 180, L"难度设置");

	while (true)
	{
		if (MouseHit())
		{
			msg = GetMouseMsg();
			int x = msg.x;
			int y = msg.y;

			// 检测鼠标是否在按钮范围内
			bool newIsOverStartButton = (x >= 80 && x <= 250 && y >= 50 && y <= 120);
			bool newIsOverDifficultyButton = (x >= 80 && x <= 250 && y >= 150 && y <= 220);

			// 如果按钮状态发生变化，才更新按钮的绘制
			if (newIsOverStartButton != isOverStartButton || newIsOverDifficultyButton != isOverDifficultyButton)
			{
				// 恢复之前高亮的按钮颜色
				if (isOverStartButton)
				{
					setrop2(R2_COPYPEN); // 恢复默认绘制模式
					setfillcolor(WHITE); // 恢复默认颜色
					fillrectangle(80, 50, 250, 120); // 恢复开始游戏按钮
					settextcolor(BLACK);
					outtextxy(130, 80, L"开始游戏");
				}
				if (isOverDifficultyButton)
				{
					setrop2(R2_COPYPEN); // 恢复默认绘制模式
					setfillcolor(WHITE); // 恢复默认颜色
					fillrectangle(80, 150, 250, 220); // 恢复难度设置按钮
					settextcolor(BLACK);
					outtextxy(130, 180, L"难度设置");
				}

				// 更新按钮状态
				isOverStartButton = newIsOverStartButton;
				isOverDifficultyButton = newIsOverDifficultyButton;

				// 高亮当前按钮
				if (isOverStartButton)
				{
					setrop2(R2_COPYPEN); // 使用默认绘制模式
					setfillcolor(RGB(200, 200, 200)); // 高亮颜色
					fillrectangle(80, 50, 250, 120); // 高亮开始游戏按钮
					settextcolor(BLACK);
					outtextxy(130, 80, L"开始游戏");
				}
				if (isOverDifficultyButton)
				{
					setrop2(R2_COPYPEN); // 使用默认绘制模式
					setfillcolor(RGB(200, 200, 200)); // 高亮颜色
					fillrectangle(80, 150, 250, 220); // 高亮难度设置按钮
					settextcolor(BLACK);
					outtextxy(130, 180, L"难度设置");
				}
			}

			// 处理鼠标点击事件
			if (msg.uMsg == WM_LBUTTONDOWN)
			{
				if (isOverStartButton)
				{
					ture = 0;
					
					break;
				}
				else if (isOverDifficultyButton)
				{
					ture = 0;
					choice = 1;
					break;
				}
			}
		}
	}
}
void showbomb()
{
	int i, j;
	for (i = 1; i <= hight; i++)
	{
		for (j = 1; j <= width; j++)
		{
			if (map[i][j] == 19)
			{
				map[i][j] -= 20;
			}
		}
	}
}
void whitchtouch2()
{
	MOUSEMSG msg;
	bool isOverEasyButton = false;
	bool isOverMediumButton = false;
	bool isOverHardButton = false;

	// 进入难度设置界面时，清除所有内容
	cleardevice();

	// 绘制难度设置界面的静态内容
	settextcolor(BLACK);
	outtextxy(30, 10, L"请选择难度：");

	// 绘制按钮
	setfillcolor(WHITE);
	fillrectangle(80, 50, 250, 120); // 初级按钮
	fillrectangle(80, 150, 250, 220); // 中级按钮
	fillrectangle(80, 250, 250, 320); // 高级按钮

	settextcolor(BLACK);
	outtextxy(130, 80, L"初级");
	outtextxy(130, 180, L"中级");
	outtextxy(130, 280, L"高级");

	while (true)
	{
		if (MouseHit())
		{
			msg = GetMouseMsg();
			int x = msg.x;
			int y = msg.y;

			// 检测鼠标是否在按钮范围内
			bool newIsOverEasyButton = (x >= 80 && x <= 250 && y >= 50 && y <= 120);
			bool newIsOverMediumButton = (x >= 80 && x <= 250 && y >= 150 && y <= 220);
			bool newIsOverHardButton = (x >= 80 && x <= 250 && y >= 250 && y <= 320);

			// 如果按钮状态发生变化，才更新按钮的绘制
			if (newIsOverEasyButton != isOverEasyButton || newIsOverMediumButton != isOverMediumButton || newIsOverHardButton != isOverHardButton)
			{
				// 恢复之前高亮的按钮颜色
				if (isOverEasyButton)
				{
					setrop2(R2_COPYPEN); // 恢复默认绘制模式
					setfillcolor(WHITE); // 恢复默认颜色
					fillrectangle(80, 50, 250, 120); // 恢复初级按钮
					settextcolor(BLACK);
					outtextxy(130, 80, L"初级");
				}
				if (isOverMediumButton)
				{
					setrop2(R2_COPYPEN); // 恢复默认绘制模式
					setfillcolor(WHITE); // 恢复默认颜色
					fillrectangle(80, 150, 250, 220); // 恢复中级按钮
					settextcolor(BLACK);
					outtextxy(130, 180, L"中级");
				}
				if (isOverHardButton)
				{
					setrop2(R2_COPYPEN); // 恢复默认绘制模式
					setfillcolor(WHITE); // 恢复默认颜色
					fillrectangle(80, 250, 250, 320); // 恢复高级按钮
					settextcolor(BLACK);
					outtextxy(130, 280, L"高级");
				}

				// 更新按钮状态
				isOverEasyButton = newIsOverEasyButton;
				isOverMediumButton = newIsOverMediumButton;
				isOverHardButton = newIsOverHardButton;

				// 高亮当前按钮
				if (isOverEasyButton)
				{
					setrop2(R2_COPYPEN); // 使用默认绘制模式
					setfillcolor(RGB(200, 200, 200)); // 高亮颜色
					fillrectangle(80, 50, 250, 120); // 高亮初级按钮
					settextcolor(BLACK);
					outtextxy(130, 80, L"初级");
				}
				if (isOverMediumButton)
				{
					setrop2(R2_COPYPEN); // 使用默认绘制模式
					setfillcolor(RGB(200, 200, 200)); // 高亮颜色
					fillrectangle(80, 150, 250, 220); // 高亮中级按钮
					settextcolor(BLACK);
					outtextxy(130, 180, L"中级");
				}
				if (isOverHardButton)
				{
					setrop2(R2_COPYPEN); // 使用默认绘制模式
					setfillcolor(RGB(200, 200, 200)); // 高亮颜色
					fillrectangle(80, 250, 250, 320); // 高亮高级按钮
					settextcolor(BLACK);
					outtextxy(130, 280, L"高级");
				}
			}

			// 处理鼠标点击事件
			if (msg.uMsg == WM_LBUTTONDOWN)
			{
				if (isOverEasyButton)
				{
					choice = 0;
					cleardevice();
					hight = 10;
					width = 10;
					grahight = 275;
					grawidth = 200;
					bomb = 16;
					break;
				}
				else if (isOverMediumButton)
				{
					cleardevice();
					choice = 0;
					hight = 17;
					width = 17;
					grahight = 415;
					grawidth = 340;
					bomb = 30;
					break;
				}
				else if (isOverHardButton)
				{
					cleardevice();
					choice = 0;
					hight = 20;
					width = 20;
					grahight = 475;
					grawidth = 400;
					bomb = 50;
					break;
				}
			}
		}
	}
}
void before()
{
	for (int i = 1; i <= hight; i++)
	{
		for (int j = 1; j <= width; j++)
		{
			map[i][j] = 0;
		}

	}
	ture = 1;//重置参数
	choice = 0;
	first = 1;
	smiles = 0;
	start_t = 0;
	runing = 1;
	win = 0;
	a = 1;
	system("cls");
	initgraph(340, 415);
	setbkcolor(RGB(189, 189, 189));
	cleardevice();
	//准备过程
	setfont(12, 0, _T("宋体"));
	while (ture)  //开始界面
	{ //绘制按钮
		settextcolor(BLACK);
		rectangle(80, 50, 250, 120);
		outtextxy(130, 80, L"开始游戏");
		rectangle(80, 150, 250, 220);
		outtextxy(130, 180, L"难度设置");
		outtextxy(30, 250, L"游戏说明:");
		outtextxy(105, 250, L"点击笑脸可以重新开始，开始");
		outtextxy(105, 275, L"游戏默认中级难度，可以选择");
		outtextxy(105, 300, L"难度直接开始游戏，点击返回");
		outtextxy(105, 325, L"回到界面");

		//显示最佳成绩
		wchar_t best_time_str[20];
		
		swprintf(best_time_str, 20, L"最佳时间: %d秒", best_time);
		outtextxy(grawidth - 150, 10, best_time_str);
		
		outtextxy(130, 350, L"小组4：王子琪，薛沛东，来瑞冉");

		whitchtouth();//开始界面的选择函数（自定义
	}
	cleardevice();
	while (choice)
	{
		settextcolor(BLACK);
		rectangle(80, 50, 250, 120);
		outtextxy(130, 80, L"初级");
		rectangle(80, 150, 250, 220);
		outtextxy(130, 180, L"中级");
		rectangle(80, 250, 250, 320);
		outtextxy(130, 280, L"高级");
		whitchtouch2();
	}
	initgraph(grawidth, grahight);
	setbkcolor(RGB(189, 189, 189));
	cleardevice();
	//开始
	numbombss = bomb % 10;
	numbombs = bomb / 10;
	updategame();
	printfmaps();
}

void theloadimage()
{
	//加载图片
	loadimage(&block[0], L"img/方块.png", 20, 20);
	loadimage(&block[1], L"img/11.png", 20, 20);
	loadimage(&block[2], L"img/22.png", 20, 20);
	loadimage(&block[3], L"img/33.png", 20, 20);
	loadimage(&block[4], L"img/44.png", 20, 20);
	loadimage(&block[5], L"img/55.png", 20, 20);
	loadimage(&block[6], L"img/66.png", 20, 20);
	loadimage(&block[7], L"img/77.png", 20, 20);
	loadimage(&block[8], L"img/88.png", 20, 20);
	loadimage(&block[9], L"img/bom.png", 20, 20);
	loadimage(&block[10], L"img/方块2.png", 20, 20);
	loadimage(&block[11], L"img/flag.png", 20, 20);
	loadimage(&block[12], L"img/red-bom.png", 20, 20);
	loadimage(&smile[0], L"img/笑脸.png", 30, 30);
	loadimage(&smile[1], L"img/笑脸2.png", 30, 30);
	loadimage(&smile[2], L"img/dead.png", 30, 30);
	loadimage(&smile[3], L"img/cool.png", 30, 30);
	loadimage(&numbomb[0], L"img/0.png", 30, 50);
	loadimage(&numbomb[1], L"img/1.png", 30, 50);
	loadimage(&numbomb[2], L"img/2.png", 30, 50);
	loadimage(&numbomb[3], L"img/3.png", 30, 50);
	loadimage(&numbomb[4], L"img/4.png", 30, 50);
	loadimage(&numbomb[5], L"img/5.png", 30, 50);
	loadimage(&numbomb[6], L"img/6.png", 30, 50);
	loadimage(&numbomb[7], L"img/7.png", 30, 50);
	loadimage(&numbomb[8], L"img/8.png", 30, 50);
	loadimage(&numbomb[9], L"img/9.png", 30, 50);

}

